<?php
class Home extends Front_Controller
{
	public function __construct()
	{
		parent::__construct();
		$this->load->model('knowledgegroup/knowledgegroup_model','knowledgegroup');
		$this->load->model('division/division_model','division');
		$this->load->model('section/section_model','section');
		$this->load->model('users/users_model','users');
		$this->load->model('users/user_knowledgetype_model','u_knowledge');
		$this->load->model('admin_notify/notify_model','notify');
	}
	
	public function index()
	{
		$data='';
		$data['knowledegroup'] = $this->knowledgegroup->limit(50)->get();
		$data['division'] = $this->division->limit(50)->get();
		$data['section'] = $this->section->limit(50)->get();
		$this->template->build('index',$data);
	}
	
	
	public function login()
	{
		$status = login($_POST['username'],$_POST['password']);
		//echo $status;
		if($status==1)
		{
			//$this->db->debug = true;
			$user = $this->users->get_row($this->session->userdata('id'));
			if($user['status'] == 1){
				redirect('home');
			}else{
				logout();
				set_notify('error', 'ชื่อนี้ยังไม่ได้ทำการยืนยันอีเมล์');
				redirect('home');
			}
		}
		else
		{
			logout();
			set_notify('error', 'ชื่อ หรือ รหัสผ่านไม่ถูกต้อง');
			redirect('home');
		}
	}
	
	public function signout(){		
		logout();
		redirect('poll');
		//redirect('home');
	}
		
	public function register()
	{
		$this->template->build('register');
	}
	
	public function save()
	{
		$_POST['auth_key'] = md5(rand());
		$_POST['status'] = 0;
		$_POST['password'] = $_POST['password']=='' ? $_POST['current_password'] : $_POST['password'];
		$_POST['registerdate'] = date("Y-m-d H:i:s");
		$id = $this->users->save($_POST);
		
		if($_POST['knowledgetype_id']){
			$this->u_knowledge->delete('user_id',$id);
			foreach($_POST['knowledgetype_id'] as $key=>$item){
				$this->u_knowledge->save(array(
					'user_id'=>$id,
					'knowledgetype_id'=>$item
				));
			}
		}
		
		//$this->send_mail_activate($_POST['email'], $_POST['auth_key']);
		$this->send_mail_activate_phpmailer($_POST['email'], $_POST['auth_key']);
		redirect('home');
	}
	
	function activate_email(){
		if($_POST){
			$auth_key = md5(rand());
			$this->db->execute("UPDATE users SET auth_key = ".$auth_key." where email = '".$_POST['email']."'");
			$this->send_mail_activate_phpmailer($_POST['email'], $auth_key);
			//$this->send_mail_activate($_POST['email'], $auth_key);
			set_notify('success', 'ระบบได้ทำการส่งรหัสยืนยันไปทางอีเมล์แล้วค่ะ');
		}
		redirect('home');
	}
	
	function send_mail_activate($email,$auth_key){
		
		$config = Array(
		    'protocol' => 'smtp',
		    'smtp_host' => 'ssl://smtp.googlemail.com',
		    'smtp_port' => 465,
		    'smtp_user' => 'fdsiakrin@gmail.com',
		    'smtp_pass' => 'f@vourite',
		    'mailtype'  => 'html', 
		    'charset'   => 'utf-8'
		);
		
		
		$this->load->library('email', $config);
		$this->email->set_newline("\r\n");
		
		$this->email->from('webmaster@ph.mahidol.ac.th', 'webmaster@ph.mahidol.ac.th');
		$this->email->to($email); //ส่งถึงใคร
		$this->email->subject('ยืนยันการลงทะเบียน ระบบคลังความรู้เพื่อสนับสนุนงานสาธารณสุข คณะสาธารณสุขศาสตร์ มหาวิทยาลัยมหิดล'); //หัวข้อของอีเมล
		$this->email->message('ยืนยันรหัสผ่านเพื่อเข้าใช้งานตามลิ้งด้านล่างนี้<br><br><a href="'.$_SERVER['SERVER_NAME'].'/phklb/home/activate/'.$auth_key.'">'.$_SERVER['SERVER_NAME'].'/phklb/home/activate/'.$auth_key.'</a>'); //เนื้อหาของอีเมล
		
		$result = $this->email->send();
		echo $this->email->print_debugger();
	}
	
	function send_mail_activate_phpmailer($email,$auth_key){
		//require("include/PHPMailer/class.phpmailer.php");
		require("include/PHPMailer_5.2.2-rc1/class.phpmailer.php");
		$mail = new PHPMailer();
		
		$body = 'ยืนยันรหัสผ่านเพื่อเข้าใช้งานตามลิ้งด้านล่างนี้<br><br><a href="'.$_SERVER['SERVER_NAME'].'/phklb/home/activate/'.$auth_key.'">'.$_SERVER['SERVER_NAME'].'/phklb/home/activate/'.$auth_key.'</a>';
		
		$mail->CharSet = "utf-8";
		$mail->IsSMTP();
		$mail->SMTPDebug = 0;
		$mail->SMTPAuth = true;
		$mail->Host       = "smtp.mail.yahoo.com";
		$mail->Port       = 25;
		$mail->Username   = "favouritedesign18@yahoo.com";
		$mail->Password   = "55555555";
		
		$mail->SetFrom('favouritedesign18@yahoo.com', 'webmaster@ph.mahidol.ac.th');
		$mail->AddReplyTo("favouritedesign18@yahoo.com", "favouritedesign18@yahoo.com");
		$mail->Subject = "ยืนยันการลงทะเบียน ระบบคลังความรู้เพื่อสนับสนุนงานสาธารณสุข คณะสาธารณสุขศาสตร์ มหาวิทยาลัยมหิดล";
		
		$mail->MsgHTML($body);
		
		$mail->AddAddress($email, $email); // ผู้รับคนที่หนึ่ง
		
		if(!$mail->Send()) {
		    echo "Mailer Error: " . $mail->ErrorInfo;
		} else {
		    echo "Message sent!";
		}
	}
	
	function activate($auth_key){
		if($auth_key){
			//$this->db->debug = true;
			$action = $this->db->execute("UPDATE users SET status = 1 where auth_key = '".$auth_key."'");
			if($action){
				set_notify('success', 'ยืนยันอีเมล์เรียบร้อยแล้ว คุณสามารถเข้าระบบเพื่อใช้งานได้ทันที');
			}
			redirect('home');
		}
	}
	
	public function forgot_password()
	{
		
		if(@$_POST['username']!='' && $_POST['email']!=''){
			$user = $this->users->where('username = "'.$_POST['username'].'" and email = "'.$_POST['email'].'"')->limit(1)->get();
			//$this->send_mail($_POST['email'],$_POST['username'],$user[0]['password']);
			$this->send_mail_phpmailer($_POST['email'],$_POST['username'],$user[0]['password']);
			set_notify('success', 'ระบบได้ทำการส่งเมล์แจ้งรหัสผ่านเรียบร้อยแล้วค่ะ');
        	redirect('home');
		}
		$this->template->build('forgot_password');
	}

	function send_mail($email,$user,$password){
		
		$config = Array(
		    'protocol' => 'smtp',
		    'smtp_host' => 'ssl://smtp.googlemail.com',
		    'smtp_port' => 465,
		    'smtp_user' => 'fdsiakrin@gmail.com',
		    'smtp_pass' => 'f@vourite',
		    'mailtype'  => 'html', 
		    'charset'   => 'utf-8'
		);
		$this->load->library('email', $config);
		$this->email->set_newline("\r\n");
		
		// Set to, from, message, etc.
		$this->email->from('webmaster@ph.mahidol.ac.th', 'webmaster@ph.mahidol.ac.th');
		$this->email->to($email); //ส่งถึงใคร
		$this->email->subject('รหัสผ่าน ระบบคลังความรู้เพื่อสนับสนุนงานสาธารณสุข คณะสาธารณสุขศาสตร์ มหาวิทยาลัยมหิดล'); //หัวข้อของอีเมล
		$this->email->message('แจ้งรหัสผ่าน<br><br>username : '.$user.'<br><br>password : '.$password); //เนื้อหาของอีเมล
		
		$result = $this->email->send();
		//echo $this->email->print_debugger();
	}
	
	function send_mail_phpmailer($email,$user=FALSE,$password){
		require("include/PHPMailer/class.phpmailer.php");
		$mail = new PHPMailer();
		
		$body = 'แจ้งรหัสผ่าน<br><br>username : '.$user.'<br><br>password : '.$password;
		
		$mail->CharSet = "utf-8";
		$mail->IsSMTP();
		$mail->SMTPDebug = 0;
		$mail->SMTPAuth = true;
		$mail->Host       = "smtp.mail.yahoo.com";
		$mail->Port       = 25;
		$mail->Username   = "favouritedesign18@yahoo.com";
		$mail->Password   = "55555555";
		
		$mail->SetFrom('favouritedesign18@yahoo.com', 'webmaster@ph.mahidol.ac.th');
		$mail->AddReplyTo("favouritedesign18@yahoo.com", "favouritedesign18@yahoo.com");
		$mail->Subject = "รหัสผ่าน ระบบคลังความรู้เพื่อสนับสนุนงานสาธารณสุข คณะสาธารณสุขศาสตร์ มหาวิทยาลัยมหิดล";
		
		$mail->MsgHTML($body);
		
		$mail->AddAddress($email, $email); // ผู้รับคนที่หนึ่ง
		
		if(!$mail->Send()) {
		    echo "Mailer Error: " . $mail->ErrorInfo;
		} else {
		    echo "Message sent!";
		}
	}
	
	public function check_email(){
		$emails=trim($_GET["email"]);
		$chk_email = $this->users->where('email = "'.$emails.'"')->get_row();
		if($chk_email){
			if($chk_email['email'] != login_data('email')){
				echo "false";
			}else{
				echo "true";
			}
		}else{
			echo "true";
		}
	}
	
	public function check_username(){
		$username=trim($_GET["username"]);
		$chk_username = $this->users->where('username = "'.$username.'"')->get_row();
		if($chk_username){
			if($chk_username['username'] != login_data('username')){
				echo "false";
			}else{
				echo "true";
			}
		}else{
			echo "true";
		}
	}
	public function notify($id=FALSE)
	{
		if(!empty($id)){
		$data['notify'] = $this->notify->where("id=".$id)->get();
		$this->load->view('notify',$data);
		$this->template->build('notify');
		}
	}

}
?>